home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / apps / 408 / mupfel.gen < prev    next >
Text File  |  1990-07-04  |  41KB  |  718 lines

  1.                          Mupfel Genesis
  2.  
  3. Ver.    Dat.
  4. 0.00 - 0.02   Lost in the mists of time....
  5.  
  6. 0.03 - 12.10. Erste halbwegs vernünftige Version
  7.  
  8. 0.04 - 14.10. Speicherfresserfehler in TC's fopen() umgangen.
  9.        15.10. Bug in access() ausgebaut.
  10.               Neues Kommando "wc".
  11.               Kommandozeilen, deren 1. non-blank # ist, sind Kommentare.
  12.               Hack fuer Ctrl-S/Ctrl-Q in outchar().
  13.               Internes Namens-Chaos etwas gemildert.
  14.        16.10. $xArg wird nach Programmausführung ganz gelöscht.
  15.               Bei .\cmd wird jetzt richtig gesucht
  16.               Neues Kommando "file" angefangen. Muss verbessert werden.
  17.        18.10. "cd" erweitert um $CDPATH
  18.               Parameterübergabe bei system()/shellcall() jetzt über
  19.               den Stack
  20.        22.10. date: Es ist nicht mehr immer Sonntag!!!
  21.        23.10. Falsche Ausgabe bei z.B. "info x:" ausgebaut
  22.               Interne Variablen $?, $0..$9, screensave, noclobber etc.
  23.               Neue Kommandos "set" und "unset" dafür.
  24.               I/O Redirection erweitert um >! und >>! für override von
  25.               noclobber.
  26.               Für Batchfiles werden $0..$9 und $# auf einem Stack ge-
  27.               speichert.
  28.               Retten von Textbildschirm wenn GEM-Programme gestartet
  29.               werden, wenn screensave einen Wert hat.
  30.               Bei Start von GEM-Programmen wird wind_set(0,WF_NEWDESK,...)
  31.               ausgeführt und per menu_bar() der Programmname in die Menü-
  32.               zeile geschrieben.
  33.               Bei "whereis cmd" wird der Hit-Counter in der Hashtabelle 
  34.               nicht mehr inkrementiert.
  35.  
  36. 0.05 - 27.10. In $SUFFIX stehen die Extensions von ausführbaren Programmen,
  37.               default für $SUFFIX ist "PRG".
  38.               Namensregeln für Env-Variablen verbessert ($1.c ging nicht).
  39.               Beim Start von GEM-Programmen wird die Maus als Busy Bee ein-
  40.               geschaltet (wie beim Desktop).
  41.        28.10. Fehler bei Batchfiles behoben: Programme konnten daraus nur
  42.               ein einziges Mal gestartet werden.
  43.               Default "." für $PATH eingebaut.
  44.        29.10. fkey f9 ... geht jetzt. f11-f20 anstatt sf1-sf10 auch.
  45.               mv macht bei unterschiedlichen Laufwerken erst eine Kopie und
  46.               löscht dann die Quelle.
  47.               Kommando "unset" wieder entfernt. "set" funktioniert 
  48.               jetzt analog zu "setenv", d.h. "set var" löscht den
  49.               Wert von var.
  50.        30.10. "wc" zählt jetzt mit longs anstatt ints.
  51.               Wenn eine Kommandozeile mit dem letzten History-Eintrag
  52.               identisch ist, wird sie nicht kopiert.
  53.               Die momentane Eingabezeile kann beim Durchscrollen der
  54.               History auch wieder zurückgeholt werden.
  55.               Neues Kommando "label". (NOTE: Geht nicht mit der momentanen
  56.               Version von TOS 1.4).
  57.               "date" setzt bei altem ROM-TOS jetzt auch die GEMDOS-Uhr.
  58.               Mupfel läuft wieder auf dem altem TOS.....
  59.               Neues Kommando "du".
  60.               I/O Redirection auf AUX:, PRN: etc geht wieder.
  61.               cp() und savescreen() holen Speicher jetzt direkt mit
  62.               Malloc()/Mfree() (wegen Problemen bei system()-Aufrufen).
  63.               Versionsnummer auf 0.06 geändert.
  64.  
  65. 0.06 - 31.10. Die Ausgaben der internen Kommandos lassen sich jetzt
  66.               mit Control-C abbrechen.
  67.               "du" zeigt wirklich nur noch Directories an, aber das
  68.               auch beim ersten Versuch.
  69.        25.11. (Hoffentlich) Bug beim Aufruf per system() beseitigt.
  70.        26.11. Neue Option -d (datekeep) für cp. Bei mv automatisch an.
  71.        04.12. system()-Bug endgültig gefixt. Puh!
  72.               malloc() etc. für Debuggingzwecke erweitert.
  73.  
  74. 0.07 - 06.12. Versionsnummer auf 0.07 geändert
  75.               Once again: Mupfel (und Kindprozesse) tut's wieder mit altem
  76.               TOS!
  77.               Externe Programme mit mehr als 128 Zeichen Argumenten werden
  78.               nicht mehr gestartet.
  79.        09.12. Werte im Environment dürfen kein '=' enthalten.
  80.               $<PRGNAME>_PAR eingebaut (siehe Doku).
  81.               I/O Redirection von Kanal 2 ist mit "2>" möglich. Weitere
  82.               Möglichkeiten (>>, >>!) wie gehabt.
  83.               I/O Redirection geht jetzt ganz! Wer hätte geglaubt, daß man
  84.               den bereits ge-Fclose-ten Handle nochmal Fclosen muss!! 8-(
  85.        10.12. Mit Shift-Leftarrow und Shift-Rightarrow kann man jetzt
  86.               zum Zeilenende bzw. Zeilenanfang springen.
  87.               Bei Kommandozeilen > 124 Zeichen werden Programme doch wieder
  88.               gestartet, die Argumente aber nur per xArg übergeben.
  89.               Die Parametervariable heisst jetzt genauso wie das Programm,
  90.               nur der Punkt wird durch '_' ersetzt, also z.B. $TC_PRG oder
  91.               $GOME_TTP.
  92.               Neue Kommandos "pushd" und "popd".
  93.        11.12. BSS erheblich verkleinert indem jetzt der Platz für die
  94.               History, die Funktionstasten und die Batchfileargumente
  95.               dynamisch angelegt werden.
  96.               Zillions of Bugs in pushd und popd gekillt.
  97.               Rangechecks beim Datumsetzen eingebaut.
  98.        14.12. Neue Option -r (rekursiv) für cp. "cp -r dir1 dir2"
  99.               kopiert den gesamten Subtree unter dir1 nach dir2.
  100.        16.12. Nichtbelegte F-Keys können wieder gefahrlos gedrückt werden.
  101.        18.12. Argumentlisten können jetzt 512 anstatt 128 Tokens enthalten.
  102.               Mit "Control-Delete" wird von der aktuellen Cursorposition
  103.               bis zum Zeilenende gelöscht.
  104.        20.12. "cp a:xxx.dat ." tut jetzt was man erwartet.
  105.               Lesefehler beim Kopieren werden jetzt richtig behandelt.
  106.               Batchfiles müssen jetzt .MUP heissen.
  107.               Versionsnummer auf 0.08 geändert.
  108.  
  109. 0.08 - 21.12. MUPFEL.MUP darf jetzt fehlen ohne daß es später zu Problemen
  110.               kommt.
  111.        24.12. ls und Konsorten können mit Ctrl-C abgebrochen werden.
  112.               Bildschirmausgabe auf RAWCON umgestellt.
  113.        26.12. RAWCON war nix. Wieder auf "normale" Ausgabe geändert.
  114.               Für GEM-Programme: Der Programmname beim Start wird zentriert.
  115.        28.12. Die Hashtabelle kann jetzt beliebig gross werden.
  116.               Beim Start von z.B. \T_MAIL.PRG wird jetzt korrekt "cd \"
  117.               ausgeführt. §$%&-GullyDOS! Warum ist Dsetpath(""); ok? 8-(
  118.               Output-Redirection wird jetzt vor Wiedereinschalten des
  119.               Cursors wieder rückgängig gemacht.
  120.        29.12. cd \xxx über $CDPATH geht jetzt.
  121.        30.12. Das Environment wird jetzt immer alphabetisch sortiert.
  122.               Schon länger drin: Wenn Mupfel mit Argumenten gestartet
  123.               wird, wird das erste als Name des Autoexec-Files anstatt
  124.               MUPFEL.MUP genommen.
  125.               Ebenfalls schon länger: Kommando "dirs" um den pushd/popd-
  126.               Stack anzuzeigen.
  127.               Cursorbewegung im Lineeditor geht jetzt richtig am rechten
  128.               Bildschirmrand.
  129.               Bug beim Historyscrollen gefixt.
  130.               Versionsnummer auf 0.09 geändert.
  131.  
  132. 0.09 - 31.12. Länge der Eingabezeile von 128 auf 256 Zeichen geändert.
  133.               Geschwindigkeitsverbesserung beim Einfügen und Löschen.
  134.               Cursor-Flackern beseitigt.
  135.               MUPFEL.DOC ergänzt (Zeileneditor, xArg, system()).
  136.               "du ." tut's jetzt.
  137.               Bösen Bock in wc gekillt.
  138.        04.01. Bug beim Zeicheneinfügen in der letzten Zeile gekillt.
  139.        05.01. Bei cd mit Argument ist nur noch genau eins erlaubt.
  140.               Überflüssigen clearscreen() beim Ende von GEM-Programmen, die
  141.               per system() gestartet wurden entfernt.
  142.               pushd ohne Argumente pusht ".", mehr als ein Argument ist 
  143.               nicht erlaubt.
  144.        06.01. Bug in screensave() gekillt.
  145.        07.01. Neue Wildcardexpansion eingebaut. Jetzt sind auch Wildcards
  146.               wie "c:\f*\*.prg" möglich. Illegale oder unsinnige Wildcards
  147.               wie z.B. "**.ext" oder "*a?.*t" werden auf sinvolle Angaben
  148.               (also "*.ext" oder "*.*") reduziert.
  149.               Interne Kommandos (bis auf tree und echo) dürfen nur noch mit
  150.               expandierten Wildcards gestartet werden.
  151.               Versionsnummer auf 0.10 geändert.
  152.  
  153. 0.10 - 08.01. Typo in cmdhelp() korrigiert.
  154.               Neue Funktionen im Zeileneditor: Ctrl-X vertauscht das Zeichen
  155.               unter dem Curor mit dem rechts davon, Ctrl-C wandelt Gross-
  156.               in Kleinbuchstaben und umgekehrt.
  157.               Link-Reihenfolge wegen 16-Bit relativen Referenzen auf free()
  158.               geändert.
  159.        09.01. Workaround für obskuren GEMDOS-Bug in "cd" eingebaut.
  160.               Die Wildcardexpansion generiert die Tokens jetzt in Klein-
  161.               buchstaben.
  162.               cp und mv brechen nach dem ersten Fehler ab.
  163.               Neue Option -v (verbose) cp, mv und rm: Der aktuelle Datei-
  164.               name wird angezeigt. Dadurch sind diese Funktionen jetzt auch
  165.               mit Control-C abbrechbar.
  166.               Neu für $PS1: "P" zeigt das aktuelle Dir. in Gross-, "p" in
  167.               Kleinschrift an.
  168.               Neue interne Variable "history". Kann im Autoexec-File (nur
  169.               dort!) gesetzt werden um die Anzahl der History-Zeilen fest-
  170.               zulegen. Default ist 20.
  171.               Zeileneditor: Ctrl-Rechts/Linkspfeil bewegen den Cursor Wort-
  172.               weise.
  173.        10.01. Abfrage "continue" bei "cp -c" auf "overwrite" geändert.
  174.               Bug bei "cp -c" gekillt (Files wurden nicht geschlossen)
  175.               Versionsnummer auf 0.11 geändert.
  176.  
  177. 0.11 - 12.01. Control-S / Control-Q geht wieder.
  178.               UNIX-mäßige Wildcards eingebaut. Doku geändert.
  179.               "fkey" und "setenv" gehen auch mit unexpandierten Wild-
  180.               cards.
  181.               Mit "|" als letztem Zeichen eines F-Tasten-Strings wird
  182.               automatisch CR ausgelöst.
  183.        13.01. Auf Wunsch werden Argumente für Programme jetzt auch mit
  184.               shel_write übergeben. Da shel_write selber nichts startet,
  185.               sondern dies erst vom AES nach Pterm erledigt wird, wird
  186.               nach Programmende "mupfel -q" als zu startendes Programm
  187.               eingetragen. Der Trick: "mupfel -q" macht sofort exit(0);
  188.               Einstellbar über neues Flag in $PRG_EXT: "S:[YN]" schaltet
  189.               shel_write an und aus. Default für GEM: Y, für TOS: N.
  190.        14.01. "cp" holt sich zum Kopieren sämtlichen freien Speicher (abzgl.
  191.               dem Wert aus der neuen internen Variable "keepfree". Default
  192.               für keepfree ist 8K.
  193.               Ausgabe bei -v geändert (cp,mv,rm).
  194.               Bösen Bock beim Löschen der Hashtabelle gekillt.
  195.               $PATH darf jetzt länger als 64 Zeichen werden.
  196.        15.01. Nach GEM-Programmen wird jetzt (bei TOS 1.4 und höher)
  197.               wind_new() ausgeführt. (Nicht bei system()-Aufruf)
  198.               cp und mv tun's jetzt auch als CP,cP,Cp,MV,Mv und mV.
  199.               Neue Option -d für touch. Damit kann im gleichen Format
  200.               wie bei date das Datum angegeben werden, auf das die
  201.               Files zu setzen sind.
  202.        16.01. Wenn GEM-Programme per shel_write andere Programme starten
  203.               werden diese jetzt von Mupfel gestartet (getestet mit Easy-
  204.               Draw und Output).
  205.               Beim Programmende wird zuerst gecheckt, ob $HOME\exit.prg
  206.               existiert, wenn ja wird das anstatt "$SHELL -q" als auszu-
  207.               führendes Programm mit shel_write eingetragen.
  208.               Die Escape-Sequenzen bei echo tun's jetzt (wie dokumentiert)
  209.               mit \ als Lead-In.
  210.               Versionsnummer auf 0.12 geändert.
  211.  
  212. 0.12 - 20.01. Fehler bei touch ohne Datumsangabe ausgebaut.
  213.               Fehler bei shel_write nach system() ausgebaut.
  214.        21.01. Die Default-Startparameter können mit den Env-Variablen
  215.               $GEMDEFAULT bzw. $TOSDEFAULT festgelegt werden.
  216.               Bug beim abwechselnden Start von TOS- und GEM-Programmen
  217.               gekillt.
  218.               ACHTUNG: Ab heute wird auf Arnd's Wunsch hin die Versions-
  219.               nummernvergabe wie folgt geändert: Jede Version erhält noch
  220.               eine Releasekennung, die bei jeder kleineren Änderung hoch-
  221.               gezählt wird. Das macht es mir einfacher, Fehlermeldungen
  222.               zu bewerten. Begonnen wird mit 0.13a.
  223.  
  224. 0.13a  22.01. Bei nicht gequoteten Tokens die mit ~ beginnen wird dieses
  225.               Zeichen durch den Namen des aktuellen Directories ersetzt.
  226.               Damit kann man jetzt ohne große Mühe Files aus dem aktuellen
  227.               Directory an GEM-Programme übergeben, die woanders liegen.
  228.               Lead-In-Zeichen bei Echo auf % geändert. \ war keine gute
  229.               Idee, weil Filenamen z.B. mit \t beginnen können.....
  230.  
  231. 0.13b  23.01. Schon wieder einen neuen Workaround wegen den Fehlern in
  232.               Dsetpath() eingebaut. Das sollte es jetzt aber endgültig
  233.               gewesen sein!
  234.               Neue Option -f (filetype) für ls. Bei Directories wird hinter
  235.               den Namen ein "\" angehängt, bei Programmen (d.h. Files deren
  236.               Extender in $SUFFIX auftaucht) ein "*".
  237.        24.01. Das Environment insgesamt und jede einzelne Variable dürfen
  238.               jetzt beliebig groß werden. Das Environment wird beim Start
  239.               mit 2 K angelegt und bei Platznot um jeweils 1 K vergrößert.
  240.               Bug bei rm's Fehlermeldungen ausgebaut.
  241.               Noch 'nen Bug bei cp -c ausgebaut. Manchmal blieb das Target-
  242.               File offen, und GEMDOS *HASST* es wenn man offene Files
  243.               löscht....
  244.  
  245. 0.13c  25.01. ls und Konsorten dürfen nicht mehr mit unexpandierten Wild-
  246.               cards gestartet werden, da sonst GEMDOS stehenbleiben kann.
  247.               (Fsfirst mag Argumente wie "x*\*.c" nicht...)
  248.        26.01. Neues Kommando "init" um 1- oder 2seitige Disketten schnell
  249.               zu löschen. Dazu werden die Tracks 0 und 1 mit Nullen über-
  250.               schrieben und ein neuer Bootsektor geschrieben.
  251.        27.01. "info" rechnet jetzt den freien Platz und die Gesamtkapazi-
  252.               tät korrekt aus Bytes pro Sektor und Clustergröße aus. Von
  253.               der Gesamtkapazität werden noch die beiden nie allozierbaren
  254.               Cluster abgezogen.
  255.  
  256. 0.13d  29.01. Externe Programme dürfen system(""); jetzt fehlerlos auf-
  257.               rufen.
  258.               Bei system()-Aufrufen wird die Maus nicht mehr an- oder aus-
  259.               geschaltet.
  260.               wind_new() wird nur noch bei (TOS 1.4 && GEM 1.3) aufgerufen.
  261.  
  262. 0.13e  31.01. Leider war der empfohlene Weg auf GEM 1.3 zu testen nicht so
  263.               doll. (In _GemParBlk.global[0] steht 0x104!!!). Abfrage
  264.               ausgebaut. #include <stdgrumble.julian>
  265.               Fehler in delaccwindow() ausgebaut.
  266.  
  267. 0.13f  02.02. Fehler im Pattern-Matcher ausgebaut (Patterns durften nicht
  268.               länger als 13 Zeichen werden).
  269.               Es ist kein Fehler mehr wenn Programme per shell_write andere
  270.               Programme ohne Pfadangabe starten wollen.
  271.        03.02. Signum2 und SPRINT tun's jetzt.
  272.  
  273. 0.13e  04.02. Signum2 tat's unter der Venus nicht. Jetzt aber!
  274.  
  275. 0.13f  05.02. Mupfel berechnet jetzt vor und nach jedem Pexec() eine Check-
  276.               summe a la TC ("The executed program damaged Mupfel...").
  277.  
  278. 0.13g  11.02. Sonderfall-Test auf GEM 1.04 für wind_new().
  279.               Der Programmname beim Start von GEM-Prgs wird jetzt zu Fuss
  280.               mit VDI-Funktionen gemalt.
  281.               Bei savescreen ist das oberste rechte Zeichen nicht mehr
  282.               invers.
  283.  
  284. 0.14a  12.02. Vernünftige Fehlermeldung bei mv wenn die Quelldatei nicht
  285.               existiert.
  286.               Neues Kommando "rename".
  287.  
  288. 0.14b  18.02. rm intern umgearbeitet (That code was cursed...)
  289.               Environment und Interne Variablen können jetzt auch
  290.               mit VAR=value gesetzt bzw mit VAR= gelöscht werden.
  291.               Neues Kommando "timer".
  292.  
  293. 0.14c  23.02. ~ funktioniert jetzt tokenweise.
  294.        24.02. $xArg wird nach Programmausführung wieder aus dem
  295.               Environment entfernt.
  296.  
  297. 0.15a  26.02. Nachtschicht bis 3:45 h mit Steve. Ergebnis:
  298.               - system() funktioniert jetzt. Früher hat sich kein
  299.               Mensch um die Register im aufrufenden Prozess gekümmert, und
  300.               außerdem hat Mupfel den Stack des Aufrufers mitbenutzt.
  301.               Jetzt werden alle Register bis auf D0 und A7 gerettet und
  302.               ein neuer Stack von 8K Größe angelegt.
  303.               - Man kann wieder Files mit der Venus kopieren!!!!!!!!!
  304.               Nach langem Suchen ist uns endlich klar geworden, daß sich
  305.               die Fehler in Dsetpath() nicht umgehen lassen, und deshalb
  306.               wird diese blöde Funktion nur noch für Directories auf-
  307.               gerufen die wirklich existieren. Das kann man mit Fsfirst
  308.               und einer winzigkleinen Routine feststellen, die Programmierung
  309.               einer solchen Routine überlassen wir dem Leser als Übungsauf-
  310.               gabe.
  311.  
  312. 0.15b  26.02. "mv a b" löscht b nicht mehr, wenn a nicht existiert oder
  313.               read-only ist.
  314.        27.02. Neues Kommando "alias" angefangen. Die Verwaltung der alias-
  315.               Liste funktioniert schon, aber benutzt wird's nirgends.
  316.        28.02. $SHELL wird jetzt auch dann richtig besetzt, wenn Mupfel im
  317.               Root-Directory liegt.
  318.  
  319. 0.15c  02.03. cp setzt bei der Zieldatei die Attribute auf den Stand der
  320.               Quelle.
  321.               $SHELL wird jetzt auf den echten Pfadnamen von Mupfel gesetzt,
  322.               selbst wenn sie nicht MUPFEL.PRG heisst (shel_read macht's
  323.               möglich).
  324.               
  325. 0.15d  03.03. init liefert jetzt einen korrekten Returncode.
  326.  
  327. 0.16a  04.03. "cd ." tut's jetzt auch im Rootdirectory.
  328.               Man darf Programme wieder z.b. mit "dir\xy.tos" oder
  329.               auch nur "dir\xy" starten.
  330.               String bei shel_read fuer $SHELL vergössert, hash-Tabelle
  331.               ging kaputt. Von dem String wird auch nur der Filename-Teil
  332.               genommen.
  333.  
  334. 0.16b  09.03. Nach system() wird kein unallozierter Speicher mehr freige-
  335.               geben.
  336.               "timer" gibt jetzt die Zeit mit zwei Nachkommastellen aus.
  337.  
  338. 0.16c  13.03. mv macht jetzt innerhalb eines Laufwerks keine Kopien mehr.
  339.               label löscht jetzt das alte Label nicht mehr wenn unter dem
  340.               neuen Namen schon ein File oder Directory existiert, außerdem
  341.               gibt's jetzt einen vernünftigen Returncode zurück.
  342.               Mit "label x: -" kann man jetzt das Label von x: löschen
  343.               ohne ein neues zu vergeben.
  344.  
  345. 0.16d  18.03. Während ein internes Kommando läuft ist jetzt Typeahead 
  346.               möglich. Der Typeaheadbuffer ist 128 Zeichen gross und wird
  347.               bei Überlauf stillschweigend weggeworfen. Bei externen Pro-
  348.               grammen funktionierts leider nicht, wahrscheinlich weil GEM-
  349.               DOS den eigenen Buffer beim Prozesswechsel löscht.
  350.               Zwei Texte geändert: Wenn Programme nur mit xArg-Argumenten
  351.               gestartet werden, wird darauf explizit hingewiesen. Wenn bei
  352.               internen Kommandos unexpandierte Wildcards überbleiben, wird
  353.               der erste nicht expandierte Token mit angezeigt (So finde
  354.               ich diese Meldung schon fast erträglich).
  355.        19.03. Alle Funktionen, die mit verketteten Listen arbeiten (ls,
  356.               hash und alias) auf einen gemeinsamen Satz Routinen zur
  357.               Listenverwaltung umgestellt.
  358.               Batchfiles werden jetzt direkt nach dem Öffnen komplett ein-
  359.               gelesen und nicht wie bisher mit fgets zeilenweise (Lösung
  360.               für Volkmars Autostart-Problem).
  361.  
  362. 0.16e  23.03. Endlich eine Lösung für die Control-Zeichen im Lineeditor.
  363.  
  364. 0.17a  26.03. alias implementiert, allerdings ohne $-Substitution.
  365.  
  366. 0.17b  27.03. Die alias-Liste wird jetzt alphabetisch sortiert.
  367.               Alias-Definitionen dürfen unexpandierte Wildcards ent-
  368.               halten.
  369.               Bug bei rekursiven aliasen ausgebaut.
  370.  
  371. 0.17c  31.03. Alias-Expansion dokumentiert.
  372.               Mehrfache Redirection eines Kanals (z.B. "ls >x >y") wird
  373.               jetzt richtig behandelt.
  374.               Den Namen der Environmentvariablen bei "A=B" und setenv werden
  375.               jetzt nach den gleichen Kriterien wie im Parser bei $xxx auf
  376.               Legalität geprüft.
  377.        02.04. Neue interne Variable "errorfile". Sollte ein File- oder
  378.               Devivename sein. Wenn gesetzt, wird für alle Kommandos Kanal
  379.               2 (StdAux) auf dieses File umgeleitet (wie 2>xx). Wenn der
  380.               Inhalt mit ">" anfängt wird angehängt (wie 2>>xx). Achtung:
  381.               Das muß man beim Setzen quoten! Für GNU, MWC usw. bietet
  382.               sich "set errorfile con:" an.
  383.  
  384. 0.17d  06.04. Neues Kommando "setscrap" um das Scrap-Directory zu setzen.
  385.               Hängt "\SCRAP.*" selber an.
  386.        08.04. Kleinere interne Aufräumarbeiten.
  387.        09.04. EXIT.PRG wird nur noch von der ersten Mupfel gestartet.
  388.               isdir() verändert das aktuelle Directory auf anderen als dem
  389.               aktuellen Laufwerk nicht mehr (betrifft setscrap, cp, mv u.a.)
  390.               Setscrap weigert sich das Scrap-Directory auf nichtexistente
  391.               Directories zu setzen.
  392.  
  393. 0.17f  11.04. Zugriff auf Directories auf nichtexistenten Drives führt nicht
  394.               mehr zu Division by Zero (Fehler in TOS 1.4: Versucht mal
  395.               Fsfirst("X:\\TEST",0x10) auszuführen...).
  396.               Neue interne Variable cwd; enthält den Namen des aktuellen
  397.               Directories.
  398.  
  399. 0.17g  14.04. Mit Ctrl-S angehaltene Kommandos können mit Ctrl-C ab-
  400.               gebrochen werden.
  401.               Jede Menge wg. TC 1.10m geändert (DTA, DISKINFO etc.).
  402.               Mupfel benutzt jetzt wind_update(). Beim Start BEG_UPDATE,
  403.               vor Pexec() END_UPDATE, danach BEG_UPDATE, am Ende wieder
  404.               END_UPDATE (wegen Ärger mit RING.ACC).
  405.        15.04. Bug im Lineeditor gekillt (zu viele DELETEs konnten zu Illegal
  406.               Instruction führen).
  407.        16.04. Whereis weiss jetzt was von aliasen.
  408.               Wenn in der aktuellen Kommandozeile ewas drinsteht und man mit
  409.               Shift-UpArrow oder Shift-DownArrow scrollt, werden nur noch
  410.               diejenigen Historyentries angezeigt, die mit den Zeichen aus
  411.               der aktuellen Zeile beginnen.
  412.               Probleme mit Venus und gesetztem screensave beseitigt.
  413.  
  414. 0.17h  20.04. Im Lineeditor wird bei Ctrl-C der Cursor jetzt eine Stelle
  415.               nach rechts bewegt.
  416.        21.04. Man kann jetzt wieder Programme ohne Extension aus dem Parent
  417.               Directory starten ("..\xx").
  418.               Default für $SUFFIX auf "prg;tos;mup" geändert.
  419.               Neue Option -a für pwd: Zeigt die aktuellen Directories auf
  420.               allen Drives an.
  421.        22.04. Environmentvariablen werden an eine zweite Mupfel korrekt
  422.               weitervererbt.
  423.               $SHELL wird beim Start nur gesetzt, wenn der shel_read-Aufruf
  424.               ein ausführbares Programm als Kommandonamen liefert.
  425.  
  426. 0.17i  22.04. Wenn ein Kommando aus der Hashtabelle nicht mehr gefunden
  427.               werden kann, wird automatisch neu in $PATH gesucht und bei
  428.               Erfolg der Hasheintrag geändert.
  429.        23.04. Die Checksumme vor und nach Pexec() geht jetzt über das Text-
  430.               und Daten-Segment.
  431.        26.04. Checksumme über's Datensegment wieder ausgebaut (wegen
  432.               system()).
  433.               Neue Option -l (linefeed) für cat damit man auch UNIX-Text-
  434.               files (die nur LF als Zeilentrenner haben) ansehen kann.
  435.               Die Directorynamen bei pwd, pwd -a, $cwd et al werden jetzt in
  436.               Kleinbuchstaben ausgegeben.
  437.        29.04. Externe Programm die im aktuellen Directory liegen und nur
  438.               wegen dem Eintrag "." in $PATH gefunden werden werden jetzt
  439.               gehasht (Funktioniert wegen automatischem rehash).
  440.               Neue interne Variable "shellcount" enthält eine Zahl, die an-
  441.               gibt, wie oft Mupfel im Speicher ist.
  442.               Alle Funktionen, die rekursiv durch Directorybäume laufen 
  443.               (cp -r, rm -r, tree, du) geben jetzt einen aussagekräftigen
  444.               Returncode zurück.
  445.  
  446. 0.17j  30.04. Die Extension "MUP" muss nicht mehr als letzte in $SUFFIX
  447.               stehen.
  448.               Mit Alternate-XXX können jetzt auch die Zeichen eingegeben
  449.               werden, die sonst eine Sonderbedeutung hätten, z.B. Alt-3
  450.               (sonst wie Control-C) für den Pfeil nach rechts.
  451.               Environment auf verkettete Listen umgestellt.
  452.        01.05. "%n" in $PS1 tut's wieder.
  453.               "setenv" darf unexpandierte Wildcards haben.
  454.  
  455. 0.17k  03.05. Bug gekillt: Wenn per system() andere Programme gestartet
  456.               wurden, wurde in die xArg-Struktur die Basepage der Mupfel
  457.               anstatt der des aufrufenden Prozesses eingetragen. Jetzt
  458.               wird der Wert aus sysbase->_run genommen.
  459.        05.05. Info kann jetzt von mehreren angegeben Laufwerken den freien
  460.               Platz anzeigen.
  461.  
  462. 0.18a  07.05. Endlich! Mupfel und Venus sind ein Programm geworden. In der
  463.               Merged Version gibt's ein neues Kommando "venus", mit dem
  464.               man nach ALT-M in die Venus zurückkommt. "exit" und "quit"
  465.               haben die gleiche Wirkung.
  466.        08.05. Einige kleinere Bugs in der Merged Version gefixt.
  467.               Bei ersten ALT-M gibt's jetzt die Copyright-Meldung der
  468.               Mupfel.
  469.        09.05. In Batchfiles werden $1, $2 usw wieder korrekt expandiert.
  470.  
  471. 0.18b  13.05. Alle mit Malloc() angeforderten Blöcke werden am Ende expli-
  472.               zit mit Mfree() wieder freigegeben.
  473.        14.05. Neue Option für $PRGNAME_EXT: Mit "D:[YN]" kann festgelegt
  474.               werden, ob vor Pexec() in das Directory des Programms ge-
  475.               wechselt werden soll.
  476.  
  477. 0.18c  15.05. "touch -d" kann die Modifkationszeit jetzt auf Mitternacht
  478.               setzen.
  479.               Merged Version: Mupfel hat ein von Venus unabhängiges
  480.               "current directory" über mehrere ALT-M Aufrufe hinweg.
  481.  
  482. 0.18d  20.05. Die Warnung "using xArg only" kommt nicht mehr bei system()-
  483.               Aufrufen.
  484.        22.05. Lösung für Volkmar's Reset-Problem. Lest bitte den Abschnitt
  485.               über system() im .DOC! (Keine Programmänderung)
  486.  
  487. 0.18e  25.05. Merged Version: Aus MUPFEL.MUP können keine Programme mehr
  488.               gestartet werden, da Venus noch nicht initialisiert ist.
  489.  
  490. 0.18f  29.05. Die Abfragen bei {cp|mv} -c und rm -i reagieren jetzt wieder
  491.               auf Kleinbuchstaben. Bei beiden gibt's ausserdem eine neue
  492.               Antwortmöglichkeit: A für All löscht/kopiert alle weiteren
  493.               Files ohne Abfrage.
  494.        03.06. Kommentare können jetzt irgendwo auf einer Zeile mit '#' be-
  495.               gonnen werden.
  496.  
  497. 0.18g  04.06. Bug bei Aliasen, die ";" enthalten gekillt.
  498.        06.06. Merged Version: Der Start von GEM-Programmen aus der Mupfel
  499.               sieht jetzt schön aus, außerdem kann man wieder Programme
  500.               aus dem aktuellen Directory starten.
  501.        10.06. Versionsabfrage für wind_new() umgestellt: Jetzt wird
  502.               auf GEM == 1.04 || (GEM >= 1.3 && GEM != 2.1) getestet.
  503.               Optionen für "version" umgestellt: -g zeigt die GEM-Version
  504.               (aus global[0]) an, -d die GEMDOS-Version. -a zeigt alle
  505.               relevanten (d.h. TOS, GEM, GEMDOS, Mupfel) Versionsnummern
  506.               an.
  507.               Überflüssiges CR/LF bei "init" rausgeworfen.
  508.               
  509. 0.18h  15.06. ls, tree und der Wildcardexpander kommen jetzt mit Files ohne
  510.               Basename (z.B. ".xyz") klar.
  511.               
  512. 0.81i  17.06. Wenn die Variable HOME im MUPFEL.MUP nicht besetzt wird, wird
  513.               sie automatisch mit dem Namen des aktuellen Directories beim
  514.               Start besetzt.
  515.               Mupfel kann jetzt mit "-c commands" auf der Kommando-
  516.               zeile gestartet werden. Dabei wird kein Autoexec-File
  517.               ausgeführt, sondern nur die angegebenen Kommandos.
  518.        18.06. Merged Version: Man darf aus der Mupfel wieder TOS-Proramme
  519.               mit grauem Hintergrund starten (PRGNAME_EXT=b:y).
  520.               
  521. 0.18j  26.06. Mupfel benutzt Line A nicht mehr. Screensave geht jetzt über
  522.               vro_cpyfm(), die Cursorposition wird mit vq_curaddress() er-
  523.               mittelt.
  524.  
  525. 0.18k  29.06. Neues internes Kommando "blitmode". Siehe Doku.
  526.               "info" zeigt jetzt auch den belegten Platz, ausserdem passt
  527.               bei "info -a" alles schön untereinander.
  528.               
  529. 0.19a  30.06. I/O-Errors bei File-Operationen sollten jetzt wesentlich
  530.               besser abgefangen werden, so daß jetzt die Alerts vom Critical
  531.               Error Handler nur noch einmal kommen dürfen. Bitte beobachten!
  532.               Testausgaben sind noch in dirstat() und setcurdir().
  533.        01.07. Kosmetische Änderungen bei "label" und "init".
  534.               "blitmode" liefert jetzt als Returncode den Blitterstatus.
  535.               Neue Option -f (force) für "setscrap". Ohne -f wird der Scrap-
  536.               Pfad nur gesetzt wenn noch keiner gesetzt war, mit -f wird in
  537.               jedem Fall umgesetzt.
  538.               
  539. 0.19b  01.07. Fehler bei I/O Redirection ausgebaut. noclobber tat's nicht
  540.               richtig, und Redirection auf read-only-Files wurde nicht ver-
  541.               nünnftig behandelt. Bei Redirection von Handle 2 wegen error-
  542.               file wird noclobber jetzt ignoriert.
  543.        02.07. Noch mehr Bugs bei I/O Redirection ausgebaut.
  544.        03.07. Immer up to date! Nach dem neuesten Stand der Erkenntnis wird
  545.               bei "setscrap" jetzt "\SCRAP.*" nicht mehr angehängt.
  546.        05.07. Die Cursor-Probleme mit TOS-Programmen, die mit B:Y in
  547.               $PRGNAME_EXT gestartet wurden sollten behoben sein.
  548.               Neue Option -q (quiet) für setscrap. Dabei wird keine Fehler-
  549.               meldung ausgegeben, wenn der Scrap-Pfad bereits gesetzt war.
  550.        07.07. Der Screen-Buffer bei savescreen() wird jetzt auf eine 256er-
  551.               Grenze ausgerichtet (sieht mit BigScreen 1.2 besser aus).
  552.               Merged Version: Im MUPFEL.MUP ist "cd" verboten, da sonst die
  553.               Venus ihre Files nicht findet.
  554.               
  555. 0.19c  14.07. Neue Env-Variable DRIVEMAP, enthält die Namen der Drives für
  556.               "info -a" und "pwd -a".
  557.               
  558. 0.19d  25.07. Beim Start von Programmen wird jetzt nicht mehr überprüft, ob
  559.               ein File wirklich ein echtes TOS-Binary ist (anhand der Magic
  560.               Number im Header), sondern nur noch getestet ob die Extension
  561.               in $SUFFIX steht (Für Load-Time-Linking nützlich).
  562.               ACHTUNG: Wenn kurze Extensions (z.B. .O) erlaubt sein sollen,
  563.               *müssen* sie vor denjenigen in $SUFFIX stehen, die sie als
  564.               Teil enthalten. D.h. "TOS;O" geht nicht, "O;TOS" geht.
  565.               Wenn weder im MUPFEL.MUP noch vom Parent-Prozess PATH und/oder
  566.               SUFFIX gesetzt werden, werden jetzt Defaults ins Environment
  567.               geschrieben.
  568.              
  569. 0.19e  28.07. Terminieren von Mupfel führt nicht mehr zu Abstürzen wenn
  570.               EXIT.PRG fehlt und $SHELL nicht gesetzt ist.
  571.               Merged Version: Fehlermeldung wegen fehlendem MUPFEL.MUP
  572.               als Alert-Box.
  573.  
  574. 0.20a  04.08. Bösen Design-Fehler gekillt: Die Kommandos auf Zeilen
  575.               wie "x;y;z" wurden teilweise in der falschen Reihenfolge
  576.               ausgeführt, speziell in Kombinationen mit Batchfiles. Jetzt
  577.               geht's brav von links nach rechts und ordentlich geschachtelt.
  578.               Thanx, Steve.
  579.               Bei cp und mv wird, wenn die letzte Angabe nur ein Drivename
  580.               ist, in das aktuelle Directory auf diesem Drive und nicht mehr
  581.               in Rootdirectory kopiert/verschoben.
  582.        05.08. Programme werden jetzt immer mit einem nicht-blinkenden Cursor
  583.               gestartet.
  584.               $COLUMNS kann jetzt gefahrlos auf unsinnige (d.h. zu kleine)
  585.               Werte gesetzt werden.
  586.               Batchfiles können mit Ctrl-C abgebrochen werden.
  587.               Per system() können jetzt wieder Batchfiles aufgerufen werden.
  588.               
  589. 0.20b  07.08. I/O-Errors bei der Pfadsuche werden jetzt vernünftig abge-
  590.               fangen.
  591.               Pwd kann jetzt das aktuelle Directory eines bestimmten Drive
  592.               anzeigen (mit "pwd c:").
  593.               
  594. 0.30a  20.08. Mal wieder 'ne Nachtschicht. Die gemergte Version hat jetzt 
  595.               Window für die Mupfel, in dem auch die von ihr gestarteten
  596.               TOS-Programme laufen. Bei der Gelegenheit geändert:
  597.               MUPFEL.MUP wird nur noch von der ersten gestarteten Mupfel
  598.               ausgeführt. $SHELL, $COLUMNS und $ROWS werden nur dann besetzt
  599.               wenn sie vom Parent nicht geerbt wurden.
  600.        21.08. Jede Menge Bugs in den Window-Routinen gefixt. Lineeditor im
  601.               Window deutlich verschnellert.
  602.  
  603. 0.30b  22.08. Hässliche Verzögerung nach "Return" in einer Kommandozeile mit
  604.               vielen Wildcards gekillt.
  605.               
  606. 0.99   23.08. Ein historisches Datum: Die "Merged Version" hat einen Namen
  607.               bekommen! "Gemini" ist in die letzte Testphase gegangen, auf
  608.               der Atari-Messe wird die Freigabe von 1.0 angekündigt.
  609.               Mit Steve bis in die Nacht gehackt. Tonnenweise Bugs in Arnd's
  610.               VT-52 Emulator gekillt. Lineeditor im Window noch schneller.
  611.               XBRA-Id für Gemini ist "GMNI". GEMINI.FNT (6*10, ID=97) ge-
  612.               bastelt. Die "negativen" Line-A-Variablen für die Größe des
  613.               Textbildschirms werden jetzt entsprechend der Windowgröße in
  614.               Gemini gesetzt. Bug beim Löschen von Zeilen per "ESC" im Line-
  615.               editor gefixt (war in Mupfel nie aufgetreten).
  616.               
  617. 0.99a  24.08. Mupfel: Bug beim Historyscrollen gefixt (war Seiteneffekt von
  618.               Änderungen wg. Gemini).
  619.               "shellcount" zählt jetzt die Mupfel- und Gemini-Einträge in
  620.               _shell_p.
  621.               Wenn MUPFEL.MUP fehlt, gibt's in Gemini keine Fehlermeldung
  622.               mehr.
  623.               Neue Option -i (interactive) für cp und mv.
  624.               Bock bei rename und backup gekillt: Alte Einstellungen von
  625.               cp/mv blieben erhalten.
  626.  
  627. 0.99b  25.08. Für rename und backup gibt's jetzt analog zu cp die
  628.               Optionen -i,-v, und -c.
  629.  
  630. 0.99c  28.08. Gemini: I/O Redirection von internen Kommandos geht
  631.               wieder.
  632.               GEMINI.FNT um die Zeichen 0-32, fast alle europäischen
  633.               Sonderzeichen und um @ erweitert.
  634.               Backspacen am rechten Bildschirm/Windowrand geht wieder 
  635.               richtig.
  636.               
  637. 0.99d  14.09. cat von Tastatur kann jetzt ausser mit Control-D auch 
  638.               noch mit UNDO abgebrochen werden.
  639.        16.09. Gemini: Fehler bei Zeichenausgabe von internen Kommandos aus-
  640.               gebaut.
  641.               
  642. 0.99e  17.09. Batchfiles werden jetzt auch richtig bearbeitet, wenn die
  643.               letzte Zeile nicht mit CR/LF aufhört. (Editoren die solche
  644.               Files erzeugen gehören verboten!)
  645.               Neue Option -a (archive) für cp: Dabei werden nur Files ko-
  646.               piert, die das Archiv-Bit gesetzt haben, nach dem Kopieren
  647.               wird es bei den Source-Files zurückgesetzt.
  648.        20.09. Bug bei "cp -r" ausgebaut: "cp -r x:\ y:\" funktioniert jetzt.
  649.               "du" ohne Argumente entspricht "du .".
  650.               Nochmal "cp -r": Funktioniert jetzt auch, wenn die benötigten
  651.               Directories bereits existieren.
  652.        21.09. Neue interne Variable "drivelist": enthält die Namen aller
  653.               angeschlossenen Drives.
  654.               Gemini: Neue Option für $PRGNAME_EXT: Über "W:[YN]" kann ge-
  655.               steuert werden, ob die Programme im Console-Window laufen so-
  656.               llen oder nicht. Wenn nicht, wird beim Programmende auf einen
  657.               Tastendruck gewartet. Default für TOS-Programme ist W:Y, bei
  658.               GEM-Programmen hat der Switch keine Wirkung. (Das ganze gilt
  659.               logischerweise nur für Programme die aus dem Console-Window
  660.               gestartet werden!).
  661.               cp gibt jetzt eine ordentliche Meldung aus, wenn beim Kopieren
  662.               die Zieldisk voll wird.
  663.               Neue Option für init: -y (yes). Stellt keine Frage mehr, son-
  664.               den initialisiert die Disk sofort.
  665.               Bug bei "version -g" gefixt: Die GEM-Versionsnummer wird trotz
  666.               des Fehlers in TCGEMLIB (das control-Array ist nur 11 statt 12
  667.               ints groß) immer richtig angezeigt.
  668.               "version -t" zeigt jetzt auch das Landeskennzeichen der be-
  669.               nutzten TOS-Version (USA,FRG,FRA,UK usw.) an.
  670.  
  671. 0.99f  22.09. Neues Kommando "shrink". Damit kann man zu Testzwecken den
  672.               zur Verfügung stehenden Speicher verkleinern.
  673.        24.09. Interner Kram. /* Kommentare! Wow! */
  674.        26.09. Neue Option -h für version. Zeigt die Versionsnummer eines
  675.               AHDI 3.01-kompitablen Treibers an, oder mangels eines solchen
  676.               einen entsprechenden Kommentar.
  677.        27.09. Gemini: In $PRGNAME_EXT wird der Paramter C:[yn] wieder korrekt
  678.               ausgewertet.
  679.               
  680. 0.99g  28.09. Gemini: TOS-Programme vom Desktop gestartet laufen jetzt
  681.               im Console-Window.
  682.               Bug in system() behoben (Batchfiles wurden manchmal nicht
  683.               korrekt behandelt).
  684.               Neues Kommando "pause". Wartet auf Tastendruck. Wenn Argumente
  685.               angegeben sind, werden diese zuerst wie bei echo ausgegeben,
  686.               allerdings immer ohne cr/lf am Schluss.
  687.               Die einzelnen Werte in $PATH, $SUFFIX, $CDPATH und
  688.               $PRGNAME_EXT dürfen jetzt wahlweise durch Komma oder Semikolon
  689.               separiert sein.
  690.        29.09. Workaround für den Handle-Bug im VDI.
  691.               Batchfiles beeinflussen jetzt das aktuelle Directory von
  692.               Mupfel/Gemini nicht mehr (auch wenn sie "cd" enthalten).
  693.               Die aktuellen Directories auf anderen als dem aktuellen Drive
  694.               können allerdings sehr wohl beeinflusst werden.
  695.        30.09. TOS-Progamme, die von Mupfel gestartet werden, haben jetzt
  696.               einen fast kompitablen Critical-Error-Handler wie im ROM
  697.               (courtesy Julian). Logisch mit XBRA.
  698.               Endlich sollte der Handle-Bug endgültig umgangen sein: Alle
  699.               Workstations (6 Stück! Wer hat mehr?) bleiben jetzt offen
  700.               wenn Programme gestartet werden.
  701.               
  702. 0.99h  02.10. Noch 'nen Bug bei "cp -rv" gefixt (War nur Optik).
  703.               Weder ls noch der Wildcard-Expander betrachten jetzt Hidden
  704.               Files. Ls kann sie mit der Option -h aber doch anzeigen.
  705.               Bei cmd1;cmd2 wurde zwischendrin ein überflüssiges CR/LF aus-
  706.               gegeben, jetzt nicht mehr.
  707.        03.10. Interne Umarbeitung der Help-Routinen, dadurch ca. 2K an Code
  708.               und Daten eingespart.
  709.               Das Kommando "info" heisst jetzt "df" (disk free).
  710.               Das Kommando "quit" ist gestorben.
  711.               Bei tree darf das Filespec-Argument jetzt ebenfalls UNIX-
  712.               Wildcards enthalten.
  713.               
  714. 0.99i  04.10. I/O Redirection umgearbeitet, nochmal ca. 1K Code gespart.
  715.               Die Ausgaben von Batchfiles können jetzt umgelenkt werden!
  716.               Wenn ein einzelnes Kommando im Batchfile was anderes will,
  717.               geht das logischerweise auch.
  718.               Wieso sagt mir eigentlich keiner, daß das noch nie ging?